#Что вы должны сделать в консоли Django?

from news.models import *

1.      Создать двух пользователей (с помощью метода User.objects.create_user('username')).

user1 = User.objects.create_user('tom_johnson')<br>
user2 = User.objects.create_user('john_tompsom')<br>

2.      Создать два объекта модели Author, связанные с пользователями.

author1 = Author.objects.create(user=user1)<br>
author2 = Author.objects.create(user=user2)<br>

3.      Добавить 4 категории в модель Category.

cat1 = Category.objects.create(name='Наука и Техника')<br>
cat2 = Category.objects.create(name='Интернет')<br>
cat3 = Category.objects.create(name='Экономика')<br>
cat4 = Category.objects.create(name='Культура')<br>

4.      Добавить 2 статьи и 1 новость.

post1 = Post.objects.create(author=author1, title='Как долго IT-специалисты работают на одном месте', type='AR', text='Кадровое агентство RealHR проанализировало данные от крупнейшей российской платформы онлайн-рекрутинга hh.ru о 26 тыс. IT-специалистах и выяснила, как долго представители разных специальностей и с разным опытом работают на одном месте. Результатами исследования аналитики поделились с «Известиями» 1 февраля. В исследовании представлены данные по разработчикам (Java, C++, PHP, iOS, Android, Frontend, Go, Python), Product-менеджерам, Project-менеджерам, DevOps-специалистам, специалистам по информационной безопасности, QA-инженерам. Их разделили на три группы, исходя из опыта работы: Junior — до 1 года; Middle — от 1 до 3 лет; Senior — свыше 3 лет.')<br>

post2 = Post.objects.create(author=author2, title='В Совфеде хотят ограничить маркетплейсы с долей рынка выше 25%', type='AR', text='Законопроект, ограничивающий открытие новых пунктов выдачи для маркетплейсов, предусматривает меры в отношении тех маркетплейсов, чья доля в онлайн-продажах выше 25%, заявил Forbes глава комитета Совфеда по экономической политике Андрей Кутепов. В Ассоциации компаний интернет-торговли, объединяющей крупнейших игроков рынка, считают инициативу избыточной и вредной — по мнению онлайн-ретейлеров, она угрожает развитию малого и среднего бизнеса и негативно скажется на рядовых покупателях.')<br>

post3 = Post.objects.create(author=author1, title=r'Фильм «Мастер и Маргарита» собрал 418 млн рублей, возглавив прокат', type='NE', text=r'Фэнтезийная драма "Мастер и Маргарита" режиссера Михаила Локшина собрала 418 млн рублей на премьерном уикенде и стала лидером отечественного проката. В фильме приняли участие Тихон Жизневский, Ирина Горбачева, Сергей Бурунов, Константин Хабенский, Дмитрий Дюжев, Мария Аронова и другие.')<br>

post4 = Post.objects.create(author=author2, title='Соотношение интеллектуальной и адаптационной деятельности человека', type='AR', text='Интуитивно мы понимаем, что лауреат Нобелевской премии или профессор интеллектуальнее дикаря из амазонских джунглей. И если говорить не об абстрактной степени интеллектуальности людей, а о принципиальном отличии различных видов деятельности, то различие между интеллектуальностью профессора и дикаря не сводимо к понятиям «больше – меньше». Есть один вполне объективный показатель, отличающий дикаря от профессора, верней отличающий их специфическую деятельность. Первый в обыденной жизни не производит новаций – орудия, технологии, приемы, обычаи в первобытном сообществе не меняются тысячелетиями. Профессор же (я уж не говорю о лауреате Нобелевской премии) по определению должен произвести хотя бы две новации – кандидатскую и докторскую диссертации, основным критерием оценки которых является именно новизна (то, что ее в них иногда не бывает, думаю, не принижает значимость приведенной мысли). Хотя, конечно, и среди дикарей раз в тысячелетие (или столетие) можно встретить «интеллектуала», предложившего новый способ заточки копалки или новый узел для силка. Но в целом новационная (интеллектуальная) деятельность для дикарей скорей исключение, чем норма.')<br>

5.      Присвоить им категории (как минимум в одной статье/новости должно быть не меньше 2 категорий).

post1.category.add(cat1)<br>
post1.category.add(cat2)<br>
post2.category.add(cat3)<br>
post3.category.add(cat4)<br>
post4.category.add(cat1)<br>

6.      Создать как минимум 4 комментария к разным объектам модели Post (в каждом объекте должен быть как минимум один комментарий).

com1 = Comment.objects.create(user=author2.user, text='Дак это итак понятно жеж', post=post1)<br>
com2 = Comment.objects.create(user=author1.user, text='Все идет к монополии)))', post=post2)<br>
com3 = Comment.objects.create(user=author2.user, text='А мне нравился старый фильм-сериал в нескольких частях...', post=post3)<br>
com4 = Comment.objects.create(user=author1.user, text='Что-то умное и интересное 8)', post=post4)<br>

7.      Применяя функции like() и dislike() к статьям/новостям и комментариям, скорректировать рейтинги этих объектов.

post1.like()<br>
post1.like()<br>
post1.like()<br>
post1.like()<br>
post1.dislike()<br>
post2.like()<br>
post3.like()<br>
post3.like()<br>
post2.like()<br>
post3.dislike()<br>
post4.like()<br>

com1.like()<br>
com1.dislike()<br>
com2.like()<br>
com2.like()<br>
com3.like()<br>
com4.like()<br>
com4.like()<br>

8.      Обновить рейтинги пользователей.

author1.update_rating()<br>
author2.update_rating()<br>

9.      Вывести username и рейтинг лучшего пользователя (применяя сортировку и возвращая поля первого объекта).

author_best = Author.objects.order_by('-rating').first()<br>
author_best.user.username<br>

10.     Вывести дату добавления, username автора, рейтинг, заголовок и превью лучшей статьи, основываясь на лайках/дислайках к этой статье.

post_best = Post.objects.order_by('-rating').first()<br>
post_best.date_published<br>
post_best.author.user.username<br>
post_best.rating<br>
post_best.title<br>
post_best.preview()<br>

11.     Вывести все комментарии (дата, пользователь, рейтинг, текст) к этой статье.

com_best = Comment.objects.all().filter(post_id=post_best.id)<br>
com_best.values('date_posted', 'user__username', 'rating', 'text')<br>
